#ifndef INTRO_STATE_H
#define INTRO_STATE_H

// standard libraries
#include <vector>

// custom libraries
#include "..\..\include\game_state\game_state.h"
#include "..\..\include\graphics\graphics_renderer.h"
#include "..\..\include\game_manager.h"
#include "..\..\include\user_controller.h"

class IntroState : public GameState
{
  public:
	static IntroState* Instance();
	
	void onOpen();
	void onClose();

	void onEnter();
	void onExit();

	void update(GameManager*, UserController*);
	void render(GraphicsRenderer*);

  protected:
	IntroState();
	IntroState(const IntroState&);
	~IntroState();
	IntroState& operator=(const IntroState&);

  private:
	int timesOpened_;

	std::vector<Image*> screens_;
	unsigned int currentScreen_;

	long currentScreenBeginTime_;
	long durationScreen_;
	long durationFadeIn_;
	long durationFadeOut_;
};

#endif // INTRO_STATE_H